package gameobjects;

public class Cvor {
	
	private float x;//x koordinata
	private float y;//y koordinata
	private int smer;//smer u kome se treba kretati
	private Cvor roditelj;//pokazivac na roditeljski cvor
	private float funkcija;//funkcija na osnovu koje se bira cvor heuristika + pomeraj
	private float heuristika;//pomeraj od trenutne tacke do krajnje Menhetn metoda
	private float pomeraj;//pomeraj od pocetne tacke do krajnje
	
	public float p = 1/1000;
	
	public Cvor() {
		x = 0;
		y = 0;
		smer = 0;
		roditelj = null;
		funkcija = 0;
		heuristika = 0;
		pomeraj = 0;
	}
	
	//GET I SET METODE
	
	public float getX() {
		return x;
	}

	public void setX(float x) {
		this.x = x;
	}

	public float getY() {
		return y;
	}

	public void setY(float y) {
		this.y = y;
	}

	public int getSmer() {
		return smer;
	}

	public void setSmer(int smer) {
		this.smer = smer;
	}

	public Cvor getRoditelj() {
		return roditelj;
	}

	public void setRoditelj(Cvor roditelj) {
		this.roditelj = roditelj;
	}

	public float getFunkcija() {
		return funkcija;
	}

	public void setFunkcija() {
		funkcija = pomeraj + heuristika;
	}

	public float getHeuristika() {
		return heuristika;
	}

	public void setHeuristika(float targetX, float targetY, float korak) {
		heuristika = korak*(Math.abs(x - targetX) + Math.abs(y - targetY));//Menhetn formula
		//heuristika = (float) (Math.pow(Math.abs(x - targetX), 2) +  Math.pow(Math.abs(y - targetY), 2));//Euklidova formula
		//heuristika = Math.max(Math.abs(x - targetX), Math.abs(y - targetY));
	}

	public float getPomeraj() {
		return pomeraj;
	}

	public void setPomeraj(float korak) {
		pomeraj = roditelj.getPomeraj() + korak;
	}

}
